---
id: 5900f3d21000cf542c50fee4
title: 'Завдання 101: оптимальний многочлен'
challengeType: 1
forumTopicId: 301725
dashedName: problem-101-optimum-polynomial
---

# --description--

Якщо нам представлені перші k членів послідовності, неможливо з упевненістю назвати значення наступного члена, оскільки існує нескінченно багато поліноміальних функцій, які можуть моделювати послідовність.

Як приклад, розглянемо послідовність кубів чисел. Вона визначається твірною функцією $u_n = n^3: 1, 8, 27, 64, 125, 216, \ldots$

Припустимо, що нам відомі лише перші два члени цієї послідовності. Керуючись принципом «чим простіше, тим краще», припустимо лінійну залежність та передбачимо, що значення наступного члена дорівнює 15 (різниця становить 7). Навіть якщо нам відомі перші три члени, згідно з тим самим принципом «простоти» варто припустити квадратичну залежність.

Визначимо $OP(k, n)$ як n-ний член оптимальної поліноміальної твірної функції для перших k членів послідовності. Очевидно, що $OP(k, n)$ надаватиме точні значення членів послідовності за умови $n ≤ k$, а першим потенційно неправильним членом буде $OP(k, k+1)$. У такому випадку функцію називають поганою.

Якби нам був відомий лише перший член послідовності, найрозумніше було б припустити сталість. Тобто за умови $n ≥ 2, OP(1, n) = u_1$.

Звідси отримуємо наступні значення OP для кубічної послідовності:

$$\begin{array}{ll}   OP(1, n) = 1          & 1, {\color{red}1}, 1, 1, \ldots     \\\\
  OP(2, n) = 7n−6       & 1, 8, {\color{red}{15}}, \ldots     \\\\   OP(3, n) = 6n^2−11n+6 & 1, 8, 27, {\color{red}{58}}, \ldots \\\\
  OP(4, n) = n^3        & 1, 8, 27, 64, 125, \ldots \end{array}$$

Очевидно, що за умови k ≥ 4 не існує поганої функції. Враховуючи суму перших неправильних членів, створених поганими поліноміальними функціями (зазначені $\color{red}{червоним}$ вище), отримуємо 1 + 15 + 58 = 74. Розгляньте поліноміальну твірну функцію десятого степеня:

$$u_n = 1 − n + n^2 − n^3 + n^4 − n^5 + n^6 − n^7 + n^8 − n^9 + n^{10}$$

Знайдіть суму перших неправильних членів, які утворені поганими поліноміальними функціями.

# --hints--

`optimumPolynomial()` має повернути `37076114526`.

```js
assert.strictEqual(optimumPolynomial(), 37076114526);
```

# --seed--

## --seed-contents--

```js
function optimumPolynomial() {

  return true;
}

optimumPolynomial();
```

# --solutions--

```js
// solution required
```
